package nav

/*
#include<stdint.h>
#include<stdbool.h>
extern void * nav_LoadNavMeshFromFile(void * path);
extern bool nav_LoadTileCacheFromFile(void * binPath,void * objFilePath,void * m_navMesh,void * m_tileCache,void * geo,void * meshProcess,void * linearAllocator,void * fastLzCompressor);

*/
import "C"
import "unsafe"
import "gitee.com/hasika/cgo"

var _ unsafe.Pointer
var _ cgo.NotUsed

/*
dtNavMesh * LoadNavMeshFromFile(char const * path)
*/
func LoadNavMeshFromFile(path *int8) DtNavMeshPtr {
	var wrap_arg_path unsafe.Pointer
	wrap_arg_path = (unsafe.Pointer)(path)
	wrap_out := C.nav_LoadNavMeshFromFile(wrap_arg_path)
	go_out := cgo.MakePtr[DtNavMeshPtr](uintptr(wrap_out))
	return go_out
}

/*
bool LoadTileCacheFromFile(char const * binPath, char const * objFilePath, dtNavMesh * m_navMesh, dtTileCache * m_tileCache, InputGeom * geo, MeshProcess * meshProcess, LinearAllocator * linearAllocator, FastLZCompressor * fastLzCompressor)
*/
func LoadTileCacheFromFile(binPath *int8, objFilePath *int8, m_navMesh DtNavMeshPtr, m_tileCache DtTileCachePtr, geo InputGeomPtr, meshProcess MeshProcessPtr, linearAllocator LinearAllocatorPtr, fastLzCompressor FastLZCompressorPtr) bool {
	var wrap_arg_binPath unsafe.Pointer
	var wrap_arg_objFilePath unsafe.Pointer
	var wrap_arg_m_navMesh unsafe.Pointer
	var wrap_arg_m_tileCache unsafe.Pointer
	var wrap_arg_geo unsafe.Pointer
	var wrap_arg_meshProcess unsafe.Pointer
	var wrap_arg_linearAllocator unsafe.Pointer
	var wrap_arg_fastLzCompressor unsafe.Pointer
	wrap_arg_binPath = (unsafe.Pointer)(binPath)
	wrap_arg_objFilePath = (unsafe.Pointer)(objFilePath)
	wrap_arg_m_navMesh = (unsafe.Pointer)(m_navMesh)
	wrap_arg_m_tileCache = (unsafe.Pointer)(m_tileCache)
	wrap_arg_geo = (unsafe.Pointer)(geo)
	wrap_arg_meshProcess = (unsafe.Pointer)(meshProcess)
	wrap_arg_linearAllocator = (unsafe.Pointer)(linearAllocator)
	wrap_arg_fastLzCompressor = (unsafe.Pointer)(fastLzCompressor)
	wrap_out := C.nav_LoadTileCacheFromFile(wrap_arg_binPath, wrap_arg_objFilePath, wrap_arg_m_navMesh, wrap_arg_m_tileCache, wrap_arg_geo, wrap_arg_meshProcess, wrap_arg_linearAllocator, wrap_arg_fastLzCompressor)
	go_out := bool(wrap_out)
	return go_out
}
